System and method for providing a compatibility feature in a session initiation protocol (SIP) environment

ABSTRACT

According to an embodiment of the present invention, an apparatus for addressing compatibility in a session protocol environment is provided that includes a communications platform operable to communicate with a first endpoint and a second endpoint and to recognize signaling capabilities of the first and second endpoints. The apparatus also includes a media termination point (MTP) operable to communicate with the endpoints and the communications platform, the media termination point being provisioned by the communications platform in a stream that involves the first and second endpoints if a signaling compatibility issue is present amongst the endpoints. If an out-of-band digit from the first endpoint is received by the communications platform, the out-of-band digit is sent to the MTP, which is operable to inject a digit associated with the second protocol into the communication session such that a mapping occurs between the digits for the first and second protocols.

TECHNICAL FIELD OF THE INVENTION

This invention relates generally to communications and, more particularly, to a system and a method and for providing a compatibility feature in a session initiation protocol (SIP) environment.

BACKGROUND OF THE INVENTION

The field of communications has become increasingly important in today's society. In particular, the ability to quickly and effectively interact with an individual (through any suitable communications media) presents a significant obstacle for component manufacturers, system designers, and network operators. This obstacle is made even more difficult due to the plethora of diverse communication technologies (e.g. Instant Messaging, cellular communications, simple voice sessions, etc.) that exist in the current marketplace.

As new communication platforms (such as session initiation protocol (SIP), for example) become available to the consumer, new protocols need to be developed in order to optimize this emerging technology. For example, one problem associated with current SIP implementations relates to compatibility with other protocols. Where protocols are not coordinated properly, communications may not reach their intended destinations or they may not be interpreted correctly.

Accordingly, the ability to provide a communications system that consumes few resources, optimizes bandwidth, and achieves superior compatibility across diverse communication platforms presents a significant challenge for network operators, service providers, and system administrators.

SUMMARY OF THE INVENTION

From the foregoing, it may be appreciated by those skilled in the art that a need has arisen for an improved process that provides an effective solution for participants in a communications architecture. In accordance with an embodiment of the present invention, a system and a method for addressing compatibility issues are provided that substantially eliminate or greatly reduce disadvantages and problems associated with conventional communication strategies and protocols.

According to an embodiment of the present invention, an apparatus for addressing compatibility in a session protocol environment is provided that includes a communications platform operable to communicate with a first endpoint and a second endpoint and to recognize signaling capabilities of the first and second endpoints. The endpoints seek to communicate with each other in a communication session, the first endpoint is associated with a first protocol and the second endpoint is associated with a second protocol. The apparatus also includes a media termination point (MTP) operable to communicate with the endpoints and the communications platform, the media termination point being provisioned by the communications platform in a stream that involves the first and second endpoints if a signaling compatibility issue is present amongst the endpoints. If an out-of-band digit from the first endpoint is received by the communications platform, the out-of-band digit is sent to the MTP, which is operable to inject a digit associated with the second protocol into the communication session such that a mapping occurs between the digits for the first and second protocols.

In more specific embodiments of the present invention, if a match exists between the endpoints such that both of the endpoints support out-of-band messages or support RFC 2833 compliant signaling, then the MTP is not inserted into the communication session.

In other embodiments, the communications platform can perform a selected one of a plurality of mappings, the mappings being included in a group consisting of: a) a signaling connection control protocol (SCCP) to key press markup language (KPML) out-of-band dual tone multi-frequency (DTMF) mapping; b) a media gateway control protocol (MGCP) to KPML out-of-band DTMF mapping; c) an H.245 to KPML out-of-band DTMF mapping; d) a java telephony application program interface (API) (JTAPI) to KPML out-of-band DTMF mapping; and e) a telephony API (TAPI) to KPML out-of-band DTMF mapping.

In still other embodiments, the first endpoint supports out-of-band DTMF and the second endpoint supports KPML. In addition, the first endpoint is subscribed to for notifications about digits and advertisements are made to the second endpoint, the advertisements indicating the second endpoint can subscribe to the first endpoint for digits if it is interested. If an end user of the second endpoint presses a key, a NOTIFY message would be generated and received and the corresponding digit would be converted to a DTMF compatible digit.

In yet other embodiments, if the communication session is transferred, dialog is utilized in lieu of leveraging the MTP. Alternative embodiments, the communications platform is operable to perform a dynamic insertion and removal of the MTP such that policy decisions associated with signaling compatibility between the endpoints are reevaluated. The dynamic insertion and removal of the MTP can be based on a transferring of the communication session or upon discovering signaling capabilities of either of the endpoints.

Certain embodiments of the present invention may provide a number of technical advantages. For example, according to one embodiment of the present invention, an architecture and a process are provided that address flows for multiple types of communication protocols. Hence, signaling is properly coordinated in an efficient manner.

Additionally, the present invention can be implemented with minimal overhead costs because: 1) endpoints do not have to be upgraded to achieve the teachings of the present invention; and 2) media termination point (MTP) insertion can be dynamic. Moreover, the present invention can remove unused MTPs. The present invention is also scalable and, further, it effectively employs configuration information gleaned from signaling capabilities associated with endpoints.

Certain embodiments of the present invention may enjoy some, all, or none of these advantages. Other technical advantages may be readily apparent to one skilled in the art from the following figures, description, and claims.

BRIEF DESCRIPTION OF THE FIGURES

To provide a more complete understanding of the present invention and features and advantages thereof, reference is made to the following description, taken in conjunction with the accompanying figures, wherein like reference numerals represent like parts, in which:

FIG. 1 is a simplified block diagram illustrating a communication system that may implement compatibility features of the present invention in accordance with one embodiment; and

FIG. 2 is a simplified block diagram illustrating a simple flow according to the teachings of one embodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 is a simplified block diagram of a communication system 10 for communicating, receiving, and transmitting data in a session initiation protocol (SIP) environment. Communication system 10 includes endpoints 12 a-12 d, a public switched telephone network (PSTN) 14, an Internet 16, a data network 18, a broadband access link 20, and a number of additional links 22 (which may include, for example, a digital subscriber line (DSL) link, a T1 link, a fiber optic link, and a wireless link). Communication system 10 also includes a set of trunk gateways 24 and 26, a 3rd-party application server 30, and a Class-5 switch 32.

In accordance with the teachings of the present invention, communication system 10 achieves an effective interworking between several protocols by mapping diverse signaling in two directions. Concisely stated, communications platform 50 can effectively address the following mappings: 1) signaling connection control protocol (SCCP) to key press markup language (KPML) out-of-band dual tone multi-frequency (DTMF) mapping; 2) media gateway control protocol (MGCP) to KPML out-of-band DTMF mapping; 3) H.245 to KPML out-of-band DTMF mapping; 4) java telephony application program interface (API) (JTAPI) to KPML out-of-band DTMF mapping; and 5) telephony API (TAPI) to KPML out-of-band DTMF mapping.

Many voice protocols (SCCP, H.323, MGCP) can send DTMF in call signaling messages. The most common method for SIP networks to use involves RFC 2833, which sends DTMF in a real-time protocol (RTP) stream. To interwork between out-of-band and RFC 2833, a relay device (i.e. a media termination point (MTP)) can be inserted into the RTP path such that it can talk to a given call agent (or an endpoint). The device can relay the appropriate RFC 2833 digits for proper signaling. However, putting MTPs in the path for all calls is neither scalable nor cost effective.

In addition, for most protocols, it is expected that an endpoint can support out-of-band DTMF, or support can be easily advertised and removed. However, KPML support, once advertised cannot be removed from a dialog with any expectation that the other endpoint will react properly. For a back-to-back user agent (B2BUA), that will often change the other side of the call without replacing existing dialog, which presents a problem.

Communications system 10 can address some of these issues (and others) by employing several translation or coordination strategies, as outlined herein in this document. In accordance with one strategy, software (e.g. an algorithm) is utilized to determine when to insert (and also when to remove) an MTP from a call for DTMF relay from an arbitrary protocol to SIP. The basic algorithm is as follows: if one side supports only out-of-band and the other side supports only RFC 2833, then an MTP is inserted to relay digits. However, due to complexities in the voice protocols, there are many things that have to be done to ensure DTMF will work, while minimizing use of MTPs. In some cases, it is useful to simultaneously do out-of-band and RFC 2833 DTMF. In these cases, an MTP can be inserted even when there is a match between the endpoints to allow an endpoint that normally only supports one method to provide DTMF using both methods.

In general, communications platform 50 has the ability to implement rules for dynamically adding and removing MTPs for DTMF relay between out-of-band DTMF and RFC 2833 DTMF (and associated signaling strategies). Other features and operational capabilities of communications platform 50 are also present, and are described in greater detail below in the context of several flows.

Before turning to those operations, the architecture and components of FIG. 1 are described for purposes of discussion and completeness. It should be noted that the internal structure of the system of FIG. 1 is malleable and can be readily changed, modified, rearranged, or reconfigured in order to achieve its intended operations or additional operations. Additionally, any of the items within FIG. 1 may be combined, where appropriate, or replaced with other functional elements that are operable to achieve any of the operations described herein.

Communication system 10 includes a skinny endpoint 52, a JTAPI endpoint 54, a TAPI endpoint 56, an SCCP endpoint 60, an H.323 endpoint 58, and an MGCP endpoint 62. (It should be noted that, in certain nomenclatures, the SCCP and skinny endpoints are virtually equivalent. The present invention is intended to cover applications for both, or any permutations thereof.) Endpoints 52-62 are merely representative of some of the types of endpoints that can be accommodated by the presentation invention. A given endpoint could certainly accommodate, or be equipped to handle, several of these protocols or other protocols. The separation of these endpoints into devices that include specific protocols is arbitrary and could be changed considerably according to particular needs and architectures.

Endpoint 12 a represents a residential location, which consists of a computer 40 and several telephones 42. Telephones 42 may be an Internet protocol (IP) telephone or a standard telephone that is operable to interface with computer 40 such that one or more capabilities of SIP are enabled through telephone 42. Accordingly, two types of telephones are illustrated in FIG. 1. Endpoint 12 b represents a small business entity, which consists of a local area network (LAN), a router, several computers 40, and several telephones 42. Endpoint 12 c represents a medium business entity, which consists of a LAN, router, a private branch exchange (PBX) or key system, several computers 40, and several telephones 42. Endpoint 12 d is a large business entity, which consists of a LAN, a router, a switch, a line gateway, several computers 40, and several telephones 42.

Thus, endpoints 12 a-d are SIP-compatible elements that include hardware and/or software that is operable to receive and to transmit data (directly or indirectly) and to implement the compatibility features as outlined herein. Note that the term “endpoint” encompasses a myriad of potential devices and infrastructure that may benefit from the operations of communication system 10. Endpoints 12 a-d may be a personal digital assistant (PDA), a cellular telephone, a standard telephone (which may be coupled to a personal computer) an IP telephone, a personal computer, a laptop computer, a mobile telephone, or any other suitable device or element (or any appropriate combination of these elements) that is operable to receive data or information. Each endpoint may also include suitable network equipment and appropriate infrastructure (e.g., switches, routers, LANs, gateways, etc.) to facilitate a SIP session. FIG. 1 illustrates only one set of example devices that may be used within communication system 10. The present invention is replete with numerous alternatives that could be used to facilitate the operations of communication system 10.

MTPs extend supplementary services, such as call hold, call transfer, call park, and conferencing, that are otherwise not available when a call is routed to an H.323 endpoint (or any other endpoints, such as any of those illustrated in FIG. 1). An MTP can accept two full-duplex coder-decoder (CODEC) stream connections (e.g. G.711). MTPs can bridge the media streams between two connections. The streaming data that is received from the input stream on one connection passes to the output stream on the other connection and vice versa. In addition, the MTP trancodes a-law to mu-law (and vice versa) and adjusts packet sizes as required by the two connections. It can also transcode other code types, as the MTP is not confined to ulaw or alaw protocols.

Each MTP belongs to a device pool, which specifies, in priority order, the list of communications platforms 50 to which the devices that are members of the device pool should attempt to register. This list represents a communications platform 50 group. The communications platform 50 controls MTP resources. When more than one MTP is registered with a given communications platform 50, that communications platform 50 controls the set of resources for each MTP. MTPs can be distributed across a networked system as desired.

When the communications platform 50 determines that a call endpoint requires an MTP, it allocates an MTP resource from the MTP that has the least active streams. That MTP resource gets inserted into the call on behalf of the endpoint. MTP resource use remains invisible to both the users of the system and to the endpoint on whose behalf it was inserted. If an MTP resource is not available when it is needed, the call connects without using an MTP resource, and that call does not have supplementary services. An MTP device can be added through communications platform 50 administration.

Communications platform 50 requires an RFC 2833 DTMF-compliant MTP device to make SIP calls. The current standard for SIP uses inband payload types to indicate DTMF tones, and AVVID components such as SCCP IP phones support only out-of-band payload types. Thus, an RFC 2833-compliant MTP device monitors for payload type and acts as a translator between inband and out-of-band payload types. With the MTP device, any service that requires a media change (such as call hold) happens transparently. No need exists to send any media update signal to the SIP proxy server.

A media resource manager (MRM), which is a software component in communications platform 50, primarily functions for resource registration and resource reservation. Each MTP device that is defined in the database registers with the MRM. The MRM keeps track of the total available MTP devices in the system and of which devices have available resources.

During resource reservation, the MRM determines the number of resources, identifies the media resource type (in this case, the MTP), and the location of the registered MTP device. The MRM updates its shared resource table with the registration information and propagates the registered information to other communications platforms.

It should also be noted that the internal structure of endpoints 12 a-d is malleable and can be readily changed, modified, rearranged, or reconfigured in order to achieve their intended operations as they pertain to the mapping function. Note also that endpoints 12 c and 12 d each include a communications platform 50, which is operable to communicate with any number of endpoints/user agents/devices (e.g. telephones 42 and/or computer 40). In one embodiment, communications platform 50 is a Call Manager element, which is manufactured by Cisco Systems, Inc. of San Jose, Calif. The Call Manager element is SIP-enabled, and it can readily accommodate other protocols (e.g., H.323). In other embodiments, communications platform 50 is any suitable component (e.g. a gateway, a switch, a router, a bridge, a state machine, a processor, etc.) that is operable to interface with endpoints/end-user devices (e.g. telephone 42, computer 40, etc.).

Software and/or hardware may reside in communications platform 50 in order to achieve the teachings of the compatibility and mapping features of the present invention. Communication platform 50 may be equipped with (or include) any suitable component, device, application specific integrated circuit (ASIC), processor, microprocessor, algorithm, computer readable medium (for example, read-only memory (ROM) element, random access memory (RAM) element, erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or field-programmable gate array (FPGA)), or any other suitable element or object that is operable to facilitate the operations thereof. Considerable flexibility is provided by the structure of communications platform 50 in the context of communication system 10 and, accordingly, it should be construed as such.

For purposes of teaching and discussion, it is useful to provide some overview as to the way in which the following invention operates in a SIP environment. The following foundational information may be viewed as a basis from which the present invention may be properly explained. Such information is offered earnestly for purposes of explanation only and, accordingly, should not be construed in any way to limit the broad scope of the present invention and its potential applications.

Many applications require the creation and management of a session, where a session is considered an exchange of data between an association of participants. The implementation of these applications is complicated by the practices of participants: users may move between endpoints, they may be addressable by multiple names, and they may communicate in several different media: in many cases simultaneously. Certain protocols have been developed to carry various forms of real-time multimedia session data such as voice, video, or text messages.

The SIP features of communication system 10 work in concert with these protocols by enabling endpoints (generally referred to as “user agents”) to discover one another and to agree on a characterization of a session they would like to share. For locating prospective session participants, and for other functions, SIP enables the creation of an infrastructure of network hosts (generally referred to as proxy servers) to which user agents can send registrations, invitations to sessions, and other requests. SIP is an agile, general-purpose tool for creating, modifying, and terminating sessions. SIP works independently of underlying transport protocols and without dependency on the type of session that is being established.

SIP is an application-layer control protocol that can establish, modify, and terminate multimedia sessions (conferences) such as Internet telephony calls. SIP can also invite participants to already existing sessions, such as multicast conferences. Media can be added to and removed from) an existing session. SIP transparently supports name mapping and redirection services, which supports personal mobility. End users can maintain a single externally visible identifier regardless of their network location.

SIP supports five facets of establishing and terminating multimedia communications: 1) user location: determination of the end system to be used for communication; 2) user availability: determination of the willingness of the called party to engage in communications; 3) user capabilities: determination of the media and media parameters to be used; 4) session setup: “ringing” establishment of session parameters at both called and calling party locations; and 5) session management: including transfer and termination of sessions, modifying session parameters, and invoking services.

As SIP gains notoriety within the communications industry, it has become apparent that architectures need to be adapted to accommodate SIP communication sessions in an optimal fashion. SIP trunks are interfaces used to receive SIP messages from a SIP network. Those messages can be brought into communications platform 50 (e.g. the Call Manager). The messages may be brought into the platform using a back-to-back user agent (B2BUA) fashion, which may be included in any communications platform 50 (or provided in some other appropriate location or provided as its own separate component). As used herein in this document, the term “agent” refers to any element (e.g. a B2BUA) that seeks to facilitate a session involving a given endpoint. An agent may be included in the endpoint in any suitable fashion (e.g. within communications platform 50 or provided external thereto).

In a given architecture, the different devices involved in a call are located throughout the network. In addition, the bearer path (i.e. the path that actually carries voice packets) is different from the signaling path, which exchanges signaling data. Thus, a common configuration for many SIP architectures is to have a real-time protocol (RTP) stream that can be leveraged to deliver appropriate data.

FIG. 2 is a simplified block diagram that can be used to explain some of the teachings of the present invention. Specifically, FIG. 2 attempts to illustrate how two endpoints, having diverse signaling protocols, can effectively communicate. FIG. 2 includes communications platform 50, a SIP-enabled endpoint 70, a skinny telephone 72, and an MTP 80.

As noted above, most SIP-endpoints support RFC 2833; however there are some ways of signaling DTMF out-of-band in SIP as well. One particular method for doing this is KPML. KPML is a markup that enables presentation-free user interfaces. The key press stimulus package is a SIP event notification package that uses the SUBSCRIBE and NOTIFY methods of SIP. The subscription filter and notification report bodies use the keypad markup language.

In particular, the “KPML” event package enables “dumb phones” and “gateways” which receive signals from dumb phones to report user key-press events. Colloquially, this mechanism provides for “digit reporting” or “DTMF reporting.” The capability eliminates the need for “hair-pinning” (routing media into and then out of the same device) through a media server or duplicating all the DTMF events, when an application server needs to trigger mid-call service processing on DTMF digit patterns.

A goal of KPML is to fit in an extremely small memory and processing footprint. The name of the XML document, KPML, reflects its legacy support role. The public switched telephony network (PSTN) accomplished signaling by transporting DTMF tones in the bearer channel (in-band signaling) from the user terminal to the local exchange.

Voice-over-IP networks transport in-band signals with actual DTMF waveforms or RFC 2833 packets. In RFC 2833, the signaling application inserts RFC 2833 named signal packets as well as, or instead of, generating tones in the media path. The receiving application receives the signal information in the media stream. RFC 2833 tones are ideal for conveying telephone-events point-to-point in an RTP stream, as in the context of straightforward sessions like a 2-party call or simple, centrally mixed conference. However, there are other environments where additional or alternative requirements are needed. These other environments include protocol translation, which is addressed by many of the teachings of the present invention.

Referring back to FIG. 2, there are several ways to initiate DTMF signaling. One way is to place this information in the call signaling. The line between the call agent and the endpoints (or telephones) could be associated with SIP, H.323, skinny, etc. Communications platform 50 can send DTMF out-of-band. RFC 2833 defines a way to send digits in the RTP stream that goes directly between the endpoints. The problem is that in some instances, one endpoint may only support an out-of-band method for communicating digits and the other only supports the RFC 2833 method of sending digits in the RTP stream. In such a case, the digits will not reach their intended destination: for either endpoint.

Communications platform 50 addresses these issues, in accordance with one embodiment of the present invention, by inserting MTP 80 in the RTP stream between the endpoints. The MTP has a skinny connection to communications platform 50. In this scenario, the MTP can translate information in two directions. For example, if an out-of-band digit is received by communications platform 50, the digit is sent to the MTP, which injects an RFC 2833 digit into the flow. This digit gets sent to the endpoint that understands the RFC 2833 protocol. In the reverse direction, when a digit is pressed on a SIP-enabled endpoint, it is sent to the MTP, which coverts the RFC 2833 digit into a skinny format. This message is then sent to communications platform 50, which sends the signal down to the skinny endpoint that understands out-of-band signaling.

In a similar example flow, consider a case in which an endpoint signals DTMF out-of-band and another endpoint is an H.323 endpoint. The out-of-band endpoint places a call through communications platform 50 and to the H.323 endpoint. Once the communications platform 50 is aware of the DTMF capabilities, it will recognize that these endpoints do not share a DTMF protocol. Communications platform 50 will subsequently identify resources, such as an MTP (i.e. a DTMF relay point) to assist in this communication. Communications platform 50 will put this MTP in the media stream that it is negotiating and perform the translation as specified above. Other scenarios could readily be accommodated, for example flows that involve MGCP, SCCP, TAPI, JTAPI, etc.

Thus, communications platform can make policies only applicable to certain calls. In one embodiment, communications platform 50 evaluates the capabilities of each endpoint before electing to utilize the MTP. If there is a mismatch, where one endpoint only does out-of-band and the other side only does RFC 2833 data, then an MTP would be inserted into the call flow. If there is a match such that both sides support out-of-band messages or both sides support the RFC 2833 data, then the MTP is not inserted in this particular flow.

Another area of optimization for communications platform 50 relates to a dynamic insertion and removal of the MTP. As the call changes, these elections can be changed or modified. For example, as a device (e.g. a call agent) transfers a call leg from one location to another location, then this policy decision (as to whether to employ an MTP) is remade for the communication session.

There are other operations of communications platform 50 that address mismatches. A special situation exists when one endpoint supports out-of-band DTMF and the other endpoint supports KPML. Based on the fact that one side supports out-of-band DTMF, a call agent could subscribe to that endpoint for notifications about digits. In addition, advertisements would be made to the KPML endpoint that this endpoint can subscribe to us for digits if it is interested. If the end user of the KPML endpoint presses a key, a NOTIFY message would be received. That digit would be converted to the appropriate protocol. In the other direction, where for example a digit is pressed at an endpoint supporting H.323, an H.245 message would be received. If a subscription exists from the SIP endpoint, a NOTIFY would be sent to it.

Yet another operation of communications platform 50 addresses some of the other complexities associated with KPML. Typically, RFC 2833 is negotiated at the same time as when decisions are made about audio codecs (e.g. 711, 729, etc.). Out-of-band DTMF is generally negotiated at that point, or it is simply assumed. Thus, in those cases, communications platform 50 is already knowledgeable about the capabilities of the endpoints (e.g. whether they can support H.323 or out-of-band, etc.).

KPML is advertised in a somewhat awkward manner. When the INVITE message is sent out, which is the first SIP message; ideally KPML would be advertised at this point. However, if the negotiations of one of the endpoints are only going to take place at a later time, communications platform 50 is not able to identify which protocols the endpoint currently supports. Thus, if KPML is advertised, communications platform 50 may be stuck supporting KPML even though the caller is incapable of performing out-of-band signaling. Hence, an MTP may be employed in certain cases where it was not necessary.

Still another difficulty arises because of the way DTMF functions. DTMF is a two-way communications protocol, which solicits whether a given endpoint would like to receive digits from another endpoint. It asks the questions: 1) Do you (as an endpoint) want to receive digits from me? and 2) Do I (as an endpoint) want to receive digits from you? Thus, it is perfectly acceptable for an endpoint to acknowledge that it supports KPML and, hence, an INVITE should be sent, and for the other endpoint to reply that it does not support KPML. When an endpoint replies that it does not support KPML, it does not mean that it does not understand KPML necessarily. Instead, the endpoint may simply be prohibiting the other endpoint from subscribing to it for digits. This does not mean that this endpoint will not subscribe to the other endpoint for digits. Hence, there is no effective way of knowing if the other endpoint is interested in receiving digits from you until a subscription is created. This creates a number of difficulties.

For example, IVR may be implemented in such a way that a call may be placed to it, but it will never provide digits back to the caller. IVR is configured to receive digits from an endpoint (e.g. when an end user accesses his e-mail) and not to send digits. For example, in a voicemail context, a voicemail system could answer and not advertise that it supports KPML. Hence, there is no way for the call agent to truly know whether an endpoint is supporting certain protocols. This knowledge (which communications platform 50 would not have) is problematic because there are decisions being made about when to use an MTP (e.g. where the endpoint supports out-of-band or RFC 2833 is necessary).

There are a multitude of ways in which communications platform 50 can address these issues (some of which were introduced above). One proposed solution recognizes that when the call agent extends an INVITE it does not always know the callee's DTMF capabilities. So these parameters will be set based on defaults for either the protocol or the configuration of the caller (typically out-of-band is assumed for non-SIP callers, RFC 2833 for SIP callers).

A second proposed solution recognizes that once support for KPML (a method of supporting out-of-band DTMF in SIP) in a dialog is advertised, it cannot be removed. This can necessitate MTP insertion in cases where there is not a DTMF mismatch. Consider an example where A supports out-of-band DTMF and elects to call endpoint B. In this case, endpoint B is a SIP endpoint so KPML is advertised. Endpoint B also supports RFC 2833. At this point, no MTP is needed. Endpoint B subscribes for KPML notifications. Later, endpoint A transfers endpoint B to endpoint C, which supports only RFC 2833. If the call agent is a B2BUA and it does not replace the dialog to endpoint B, an MTP will be needed to service the subscription. This occurs even if endpoint C had called endpoint B because in a basic call there would have been no MTP. Replacing the dialog is another way to deal with this issue.

A third proposed solution operates in the following manner. If later in a call, new information about a sides' capabilities are discovered, or if one of the parties changes, an MTP can be added or removed dynamically.

A fourth proposed solution operates in the following manner. Some device types do not typically need to receive digits but do need to be able to provide them: one example being phones. To further minimize DTMF usage, when calling between devices known to be like phones (usually via configuration): 1) only insert an MTP if one of the devices needs to be a receiver and there is a mismatch. [If both devices do not need to receive digits then even in the mismatch case no MTP is needed.]; and 2) when calling a device that does not need to receive digits, do not advertise KPML. If an endpoint advertises KPML, it can still be subscribed to. The reason to avoid advertising KPML in this case is that it might necessitate an MTP to support that KPML advertisement later in the call even though the device will never subscribe.

Hence, the present invention can accommodate asymmetrical capabilities in a myriad of ways. As outlined above, some of the methods employed to address these issues are based on default parameters, recognized or discovered capabilities, or proffered signaling. In a general sense, communications platform 50 is capable of addressing virtually any situation in which two incompatible protocols are present and there is a need to interact or cooperate in terms of a communication session.

It is important to note that the stages and steps described above illustrate only some of the possible scenarios that may be executed by, or within, the present system. Some of these stages and/or steps may be deleted or removed where appropriate, or these stages and/or steps may be modified, enhanced, or changed considerably without departing from the scope of the present invention. In addition, a number of these operations have been described as being executed concurrently with, or in parallel to, one or more additional operations. However, the timing of these operations may be altered. The preceding example flows have been offered for purposes of teaching and discussion. Substantial flexibility is provided by the tendered architecture in that any suitable arrangements, chronologies, configurations, and timing mechanisms may be provided without departing from the broad scope of the present invention. Accordingly, communications capabilities, data processing features and elements, suitable infrastructure, and any other appropriate software, hardware, or data storage objects may be included within communication system 10 to effectuate the tasks and operations of the elements and activities associated with executing compatibility functions.

Although the present invention has been described in detail with reference to particular embodiments, it should be understood that various other changes, substitutions, and alterations may be made hereto without departing from the spirit and scope of the present invention. The illustrated network architecture of FIG. 1 has only been offered for purposes of example and teaching. Suitable alternatives and substitutions are envisioned and contemplated by the present invention: such alternatives and substitutions being clearly within the broad scope of communication system 10. For example, the use of the LAN could easily be replaced by a virtual private network (VPN), a metropolitan area network (MAN), a wide area network (WAN), a wireless LAN (WLAN), or any other element that facilitates data propagation for endpoints 12 a-d. Using analogous reasoning, the routers and switches illustrated by FIG. 1 may be supplanted by bridges, gateways, or any other suitable devices that are conducive to network communications. In addition, while the foregoing discussion has focused on SIP, any other suitable session protocol may benefit from the compatibility teachings provided herein. The present invention is not confined to the SIP platform or to the identified signaling protocols.

Numerous other changes, substitutions, variations, alterations, and modifications may be ascertained to one skilled in the art and it is intended that the present invention encompass all such changes, substitutions, variations, alterations, and modifications as falling within the spirit and scope of the appended claims. 

1. An apparatus for addressing compatibility in a session protocol environment, comprising: a communications platform operable to: communicate with a first endpoint and a second endpoint seeking to communicate with each other in a communication session; determine if there is a mismatch in signaling capabilities of the first and second endpoints such that one endpoint can support out-of-band messaging but the other endpoint cannot, the first endpoint being associated with a first protocol, the second endpoint being associated with a second protocol; if there is a mismatch between the signaling compatibilities: dynamically insert a media termination point (MTP) in a stream between the first and second endpoints; receive an out-of-band digit from the first endpoint, the out-of-band digit received on a channel distinct from the stream between the first and second endpoints; send the out-of-band digit to the MTP to inject a digit associated with the second protocol into the communication session to map the digits for the first and second protocols; receive a digit converted to the first protocol by the MTP and send the converted digit to the first endpoint; and if there is no mismatch between the signaling compatibilities, refrain from inserting the MTP if no MTP has been inserted.
 2. The apparatus of claim 1, wherein the first endpoint supports out-of-band DTMF and the second endpoint supports KPML.
 3. The apparatus of claim 1, wherein the first endpoint is subscribed to for notifications about digits, and advertisements are made to the second endpoint, the advertisements indicating the second endpoint can subscribe to the first endpoint for digits.
 4. The apparatus of claim 1, wherein if an end user of the second endpoint presses a key, a NOTIFY message is generated and received and a corresponding digit is converted to a DTMF compatible digit.
 5. The apparatus of claim 1, wherein if a call is made to a selected endpoint that does not need to receive digits for signaling compatibility, KPML is not advertised.
 6. The apparatus of claim 1, wherein the first endpoint supports out-of-band DTMF and the second endpoint supports an H.323 protocol.
 7. The apparatus of claim 1, wherein: the second endpoint supports an H.323 protocol; and if a digit is pressed at the second endpoint supporting H.323, an H.245 message is generated.
 8. The apparatus of claim 1, wherein if a subscription exists from the first endpoint, a NOTIFY message is sent to the first endpoint in response to the digit being pressed.
 9. The apparatus of claim 1, wherein the communications platform is operable to perform a dynamic insertion and removal of the MTP such that policy decisions associated with signaling compatibility between the endpoints are reevaluated.
 10. The apparatus of claim 1, wherein the dynamic insertion and removal of the MTP is based on a transferring of the communication session.
 11. The apparatus of claim 1, wherein the dynamic insertion and removal of the MTP is based on discovering new signaling capabilities of either of the endpoints.
 12. A method for addressing compatibility in a session protocol environment, comprising: communicating, by a communications platform, with a first endpoint and a second endpoint seeking to communicate with each other in a communication session; determining if there is a mismatch in signaling capabilities of the first and second endpoints such that one endpoint can support out-of-band messaging but the other endpoint cannot, the first endpoint being associated with a first protocol, the second endpoint being associated with a second protocol; if there is a mismatch between the signaling compatibilities: dynamically inserting, by the communications platform, a media termination point (MTP) in a stream between the first and second endpoints; receiving an out-of-band digit from the first endpoint, the out-of-band digit received on a channel distinct from the stream between the first and second endpoints; sending, by the communications platform, the out-of-band digit to the MTP to inject a digit associated with the second protocol into the communication session to map the digits for the first and second protocols; receiving a digit converted to the first protocol by the MTP and sending the converted digit to the first endpoint; and if there is no mismatch between the signaling compatibilities, refraining from inserting the MTP.
 13. The method of claim 12, further comprising: subscribing to the first endpoint for notifications about digits, wherein advertisements are made to the second endpoint, the advertisements indicating the second endpoint can subscribe to the first endpoint for digits.
 14. The method of claim 12 wherein if an end user of the second endpoint presses a key, a NOTIFY message is generated and received and a corresponding digit is converted to a DTMF compatible digit.
 15. The method of claim 12, wherein if a call is made to a selected endpoint that does not need to receive digits for signaling compatibility, KPML is not advertised.
 16. The method of claim 12, wherein if a digit is pressed at the second endpoint supporting H.323, an H.245 message is generated.
 17. The method of claim 12 wherein if a subscription exists from the first endpoint, a NOTIFY message is sent to the first endpoint in response to the digit being pressed.
 18. The method of claim 12, further comprising: performing a dynamic insertion and removal of the MTP such that policy decisions associated with signaling compatibility between the endpoints are reevaluated.
 19. The method of claim 18, wherein the dynamic insertion and removal of the MTP is based on a transferring of the communication session or based on discovering new signaling capabilities of either of the endpoints.
 20. A non-transitory computer readable medium storing software for addressing compatibility in a session protocol environment, the software comprising computer code, such that when executed is operable to: communicate, by a communications platform, with a first endpoint and a second endpoint seeking to communicate with each other in a communication session; determine if there is a mismatch in signaling capabilities of the first and second endpoints such that one endpoint can support out-of-band messaging but the other endpoint cannot, the first endpoint being associated with a first protocol, the second endpoint being associated with a second protocol; if there is a mismatch between the signaling compatibilities; dynamically insert, by the communications platform, a media termination point (MTP) in a stream between the first and second endpoints; receive an out-of-band digit from the first endpoint, the out-of-band digit received on a channel distinct from the stream between the first and second endpoints; send, by the communications platform, the out-of-band digit to the MTP to inject a digit associated with the second protocol into the communication session to map the digits for the first and second protocols; receive a digit converted to the first protocol by the MTP and send the converted digit to the first endpoint; and if there is no mismatch between the signaling compatibilities, refrain from inserting the MTP.
 21. The medium of claim 20, wherein the code is further operable to: subscribe to the first endpoint for notifications about digits, wherein advertisements are made to the second endpoint, the advertisements indicating the second endpoint can subscribe to the first endpoint for digits.
 22. The medium of claim 20, wherein if an end user of the second endpoint presses a key, a NOTIFY message is generated and received and a corresponding digit is converted to a DTMF compatible digit.
 23. The medium of claim 20, wherein if a call is made to a selected endpoint that does not need to receive digits for signaling compatibility, KPML is not advertised.
 24. The medium of claim 20, wherein if a digit is pressed at the second endpoint supporting H.323, an H.245 message is generated.
 25. The medium of claim 20, wherein if a subscription exists from the first endpoint, a NOTIFY message is sent to the first endpoint in response to the digit being pressed.
 26. The medium of claim 20, wherein the code is further operable to: perform a dynamic insertion and removal of the MTP such that policy decisions associated with signaling compatibility between the endpoints are reevaluated.
 27. The medium of claim 26, wherein the dynamic insertion and removal of the MTP is based on a transferring of the communication session or based on discovering new signaling capabilities of either of the endpoints. 